package service;

import java.util.Map;

/**
 * 缓存服务接口
 * 提供数据缓存功能
 */
public interface CacheService {
    
    /**
     * 存储到缓存
     */
    <T> boolean put(String key, T value);
    
    /**
     * 从缓存获取
     */
    <T> T get(String key, Class<T> clazz);
    
    /**
     * 从缓存删除
     */
    boolean remove(String key);
    
    /**
     * 检查缓存中是否存在
     */
    boolean contains(String key);
    
    /**
     * 清空缓存
     */
    void clear();
    
    /**
     * 获取缓存大小
     */
    int size();
    
    /**
     * 获取缓存统计信息
     */
    Map<String, Object> getStatistics();
    
    /**
     * 设置缓存过期时间
     */
    <T> boolean putWithExpiry(String key, T value, long expiryMs);
    
    /**
     * 批量存储到缓存
     */
    <T> boolean putAll(Map<String, T> keyValueMap);
    
    /**
     * 批量从缓存获取
     */
    <T> Map<String, T> getAll(java.util.List<String> keys, Class<T> clazz);
} 